package com.uidp.conf;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import com.acsior.conf.ConfigurationManager;

/**
 * Сървлет съдържащ инициализация на приложението.
 */
public class ApplicationInitServlet extends HttpServlet {

	/** Ключ на конфигурационната директория. */
	public static final String CONFIG_PATH_SUFFIX = "configPathSuffix";

	/** Ключ на централния конфигурационен файл. */
	private static final String MASTER_CONF_FILE = "masterConfigFile";

	/** Сериен номер на класа. */
	private static final long serialVersionUID = -3733403703918526870L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public ApplicationInitServlet() {
		super();
	}

	/**
	 * @see javax.servlet.GenericServlet#destroy()
	 */
	@Override
	public void destroy() {
		super.destroy();
	}

	/**
	 * Инициализация на системната и компонентната конфигурация, чрез
	 * извикването на <code>ConfigurationManager</code>.
	 * 
	 * @see Servlet#init(ServletConfig)
	 * 
	 * @throws ServletException
	 *             при неуспешна инициализация
	 */
	@Override
	public void init(ServletConfig config) throws ServletException {
		super.init(config);
		try {
			String confDirStr = config.getInitParameter(CONFIG_PATH_SUFFIX);
			String configName = config.getInitParameter(MASTER_CONF_FILE);

			ConfigurationManager.getInstance().initialize(getServletContext(), confDirStr,
					configName);

			//File webContentDir = new File(getServletContext().getRealPath("/"));
		} catch (Exception e) {
			throw new ServletException(e);
		}
	}


}